const app = getApp();

const fetchSev = require("../../utils/util.js").fetchSev;
const getSkusUrl = require("../../config.js").getSkusUrl;    // 查询小码列表

Page({

  /**
   * 页面的初始数据
   */
  data: {
    cateArr: [{cate: '综合排序', id: 1}, { cate: '新品推荐', id: 2}],
    cateIndex: 0,  

    currentTabIdx: -1,   // 控制“综合排序”“销量”“克重排序”“筛选”的交互色，取值范围：1 ~ 4
    weightSortToggle: false, // true 从高到低， false 从低到高

    skuList: [],    // sku搜索结果
    noGoodShow: false,

    searchData: {
      // pagesize: 10,
      // page: 1,
      // q_keyword: '',  // 关键字
      // q_cate_id: '',  // 品类id
      // q_min_weight: '', // 克重范围
      // q_max_weight: '', 
      // order_by: '',  // (max_weight: 克重范围降序, min_weight(克重范围升序)
      // q_spu_id: '',  // 大码id
      // q_craft_id: '',  // 工艺id

      department: '',
      cate_id: '',
      spu_id: '',
      craft: '',
      sku_name: '',    // 关键字
      max_weight: '',
      min_weight: '',
      order_by: '',    // weights-up / weights-down
      page: 1,
      pagesize: 10
    },
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log('页面刷新');
    // 重置
    this.setData({skuList: []});
    // 初始化全局的搜索关键字
    this._updateSearchData('sku_name', app.globalData.searchText);
    this.setData({ noGoodShow: false});

    const filter = app.globalData.filter;
    // 以下数据来自filter页面
    this._updateSearchData('min_weight', filter.weight1);
    this._updateSearchData('max_weight', filter.weight2);
    this._updateSearchData('cate_id', filter.currentCateId);   // 来自filter页面的品类id
    this._updateSearchData('spu_id', filter.currentSpuId);     // 来自filter页面的大码id
    this._updateSearchData('craft', filter.currentCraftId); // 来自filter页面的工艺id
    // 初始化请求，根据“关键字”搜索小码列表
    // this._updateSearchData('q_keyword', '精品时尚');
    
    this._search(this.data.searchData);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    wx.showToast({
      title: '正在刷新',
      icon: 'loading'
    });
    this.onShow();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let page = parseInt(this.data.searchData.page);
    page = page + 1;
    this._updateSearchData('page', page);
    this._search(this.data.searchData);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  },

  // 工具1：sku条件搜索 
  _search: function(data) {
    console.log('筛选条件======================> 9个条件', data);
    let skuList = this.data.skuList;
    wx.showLoading({
      title: '加载中'
    });
    fetchSev(getSkusUrl, 'GET', data, function(res) {
      console.log('小码列表', res);
      const list = res || []; 
      // 追加
      skuList = skuList.concat(list);
      // 暂无商品
      if (skuList.length == 0) {
        this.setData({ noGoodShow: true});
      }
      this.setData({ skuList: skuList});
      wx.hideLoading();
      // 停止下拉刷新
      wx.stopPullDownRefresh();
    }.bind(this));
  },

  // 工具2：更新searchData中的一个搜索条件
  _updateSearchData: function(key, value){
    let obj = this.data.searchData;
    // 重置“克重范围”为默认排序
    obj.order_by = '';
    for(let k in obj) {
      if (k === key) {
        obj[k] = value;
      }
    }
    this.setData({searchData: obj});
  },

  // 工具3：状态重置
  _stateReset: function() {
    // 重置交互色
    this.setData({currentTabIdx: -1});
    // 重置“克重范围”为默认排序
    this.setData({ weightSortToggle: false});
    // 重置搜索条件
    const searchObj = this.data.searchData;
    for (let key in searchObj) {
      if (key != 'sku_name') {
        searchObj[key] = '';
      }
    }
    searchObj.page = 1;
    searchObj.pagesize = 10;
    this.setData({ searchData: searchObj });
  },


  // 1-根据 关键字 来搜索
  _keywordInputChange: function(e) {
    const keyword = e.detail.value;
    this._updateSearchData('sku_name', keyword);
  },
  _searchBtnClick: function() {
    // 重置skuList
    this.setData({skuList: []});
    if (!this.data.searchData.sku_name) {
      wx.showToast({
        title: '请输入搜索关键字',
        icon: 'none'
      });
      return;
    }
    this._stateReset();
    // 改变tab交互色
    this.setData({ currentTabIdx: -1 });
    this._search(this.data.searchData);
  },

  // 2-根据 综合排序与新品推荐 来搜索
  _cateChange: function(e) {
    console.log(e.detail.value);
    this.setData({
      cateIndex: e.detail.value
    })
  },

  // 3-根据克重范围排序：从高到低，从低到高，默认排序
  _weightSort: function() {
    // 交互色
    this.setData({currentTabIdx: 3});
    // 升序与降序 搜索
    let toggle = this.data.weightSortToggle;
    if (toggle) {      
      this._updateSearchData('order_by', 'weights-down');  // 克重降序排列 
      this.setData({ weightSortToggle: false });
      console.log('克重 降序排列 ----------------------', this.data.weightSortToggle);
    } else {      
      this._updateSearchData('order_by', 'weights-up');  // 克重升序排列
      this.setData({ weightSortToggle: true });
      console.log('克重 升序排列 ++++++++++++++++++++++', this.data.weightSortToggle);
    }
    this._search(this.data.searchData);
  },

  // 4 - 综合与热销排序
  _cateSort: function() {
    this._stateReset();
    // 交互色
    this.setData({ currentTabIdx: 1 });
  },

  // 5-销量排序：从高到低
  _saleSort: function() {
    this._stateReset();
    // 交互色
    this.setData({ currentTabIdx: 2 });
  },

  // 6-筛选
  _filterClick: function() {
    this._stateReset();
    // 交互色
    this.setData({ currentTabIdx: 4 });
    // 跳转到filter页面
    wx.navigateTo({
      url: '../filter/filter',
    });
  },


  // 7-点击sku
  _skuClick: function(e) {
    console.log(e);
    // 更新当前的全局sku
    const currentSku = e.currentTarget.dataset.sku;
    app.globalData.currentSku = currentSku;
    // 跳转至sku详情页
    wx.navigateTo({
      url: '../detail/detail',
    });
  }


})